The evolution of computers and networking technologies from high-cost, low performance data processing systems to low cost, high-performance communication, problem solving and entertainment systems has provided a cost-effective and time saving means to lessen the burden of performing every day tasks such as correspondence, bill paying, shopping, budgeting and information gathering. Today, a computing system interfaced to the Internet, via wire or wireless technology, can provide a user with a channel for nearly instantaneous access to a wealth of information from a repository of web sites and servers located around the world, at the user's fingertips.
For example, in such “worldwide web” network, a user is able to designate an address of a site or target page where the user desires to “go”. The user then enters the selected site and the target page or site home page will be displayed on the user's display screen. Typically, the information available via web sites and servers is accessed via a web browser executing on a web client (e.g., a computer). For example, a web user can deploy a web browser and access a web site by entering the web site Uniform Resource Locator (URL) (e.g., a web address and/or an Internet address) into an address bar of the web browser and pressing the enter key on a keyboard or clicking a “go” button with a mouse. In many cases, when the target screen is displayed, it may not present the anticipated or sought after information and the user will then have to designate another target address for access.
Processes involved in page navigation can be automated, relying on communication among applications, while others rely on people to initiate the process, approve documents the process uses, resolve any exceptional situations that arise, and more. In either case, it is common to specify a discrete series of steps known as a workflow (e.g., page flow control) that describes the activities of the users and software involved in the process. Once such workflow has been defined, an application can be built around that definition to support the business process.
Computer systems and associated software now provide tools with which businesses and other organizations can improve their workflow. Software tools can be used to model business workflow processes or schedules and identify inefficiencies and possible improvements. In addition, where a process involves exchanging data between people, departments, plants, or even between separate companies, computer systems and networks can be used to implement such exchanges. Such systems and software tools are further able to implement large-scale computations and other data or information processing that are typically associated with business related information.
Accordingly, workflow management includes the effective management of information flow and control in an organization's business processes, wherein automation of such information processing has led to many efficiency improvements in the modern business world. Moreover, such automation of workflow management is now allowing businesses and other organizations to further improve performance by executing workflow transactions in computer systems, including global computer networks, such as the Internet.
A typical workflow-based application often requires a plurality of conditions to be satisfied. For example, one such condition is the ability to make decisions based on business rules. Such can include simple rules, (e.g., like as a yes-or-no decision based on the result of a credit check), and more complex rules, (e.g., the potentially large set that must be evaluated to make an initial underwriting decision.) Another requirement is communication with other software and other systems outside the workflow. For example, an initial request can be received from one part of the application, while some aspects, (e.g., contacting a credit service) can require communication using other web services or technologies. A further condition to be satisfied is the proper interaction of the workflow with users. For example, the workflow should typically be able to display a user interface itself or interact with human beings through other software. Moreover, the ability to maintain state throughout the workflow's lifetime is another condition that needs to be satisfied. Accordingly, creating and executing a workflow in software poses unique challenges.
Today there are a plurality of solutions for incorporating workflow systems with page flow control. Such can include ones that employ Model View Controller (MVC), Page Controller, and Front Controller patterns, to orchestrate web page navigation, for example. These solutions allow users to navigate through a series of predefined pages with hard-coded relationships. Nonetheless, submitting pages that have already being processed requires the relationships to be defined ahead of time.
Accordingly, it can become challenging to model all possible combination of relationships between any set of pages. Such complexity forces developers and analysts to model the relationship between pages that is most common and likely to happen, e.g., the “happy path”. Thus, developers can be forced to build re-submit logic inside their pages that needs to keep track of the last page submitted. In general, no mechanism exist to enable definition of page flow, wherein end users are capable of repositioning the flow without a formal relationship between pages being defined.
Therefore, there is a need to overcome the aforementioned exemplary deficiencies associated with conventional systems and devices.